const express = require('express');
const router = express.Router();
const regionController = require('../controllers/regionController');
const { authenticateToken, authorizeRole } = require('../middlewares/auth');
const regionValidator = require('../middlewares/validators/regionValidator');

// 所有路由都需要认证
router.use(authenticateToken);

// 创建区域 - 仅管理员和经理可操作
router.post('/', 
    authorizeRole(['admin', 'manager']),
    regionValidator.validateRegion, 
    regionController.createRegion
);

// 获取区域列表 - 所有认证用户可访问
router.get('/', regionController.getAllRegions);

// 获取区域详情 - 所有认证用户可访问
router.get('/:id', regionController.getRegion);

// 更新区域信息 - 仅管理员和经理可操作
router.put('/:id', 
    authorizeRole(['admin', 'manager']),
    regionValidator.validateRegion, 
    regionController.updateRegion
);

// 删除区域 - 仅管理员可操作
router.delete('/:id', 
    authorizeRole(['admin']),
    regionController.deleteRegion
);

// 设置区域负责人 - 仅管理员和经理可操作
router.put('/:id/manager', 
    authorizeRole(['admin', 'manager']),
    regionController.setRegionManager
);

module.exports = router; 